/** 
 *  OLMAP 方法函数
 *  自定义事件
 *  @author Goog2023
 */
import { DEFAULTEVENTNAMES } from "../constants"
// 创建推送的自定义事件
function fDispatchACustomEvent(eventName = 'CustomEvent', ...params) {
    document.dispatchEvent(new CustomEvent(eventName, ...params))
}

// 监听自定义事件
function fListenCustomEvent(eventName = 'CustomEvent', callback) {
    document.addEventListener(eventName, callback);
}

// 地图被单击事件推送
function fMapClickDispatchEvent(param) {
    fDispatchACustomEvent(DEFAULTEVENTNAMES.MAPCLICK, { detail: param || '' });
}

// 地图被双击事件推送
function fMapDbClickDispatchEvent(param) {
    fDispatchACustomEvent(DEFAULTEVENTNAMES.MAPDBCLICK, { detail: param || '' });
}

// 地图的图层加载完成
function fMapLoadedDispatchEvent(param) {
    fDispatchACustomEvent(DEFAULTEVENTNAMES.MAPLOADED, { detail: param || '' });
}


export {
    fDispatchACustomEvent,
    fMapClickDispatchEvent,
    fMapDbClickDispatchEvent,
    fListenCustomEvent,
    fMapLoadedDispatchEvent
}
